package com.codedancer.campus.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.manager.service.bo.role.RoleAddOrUpdateBo;
import com.codedancer.campus.manager.service.bo.role.RolePageSearchBo;
import com.codedancer.campus.manager.service.vo.role.RolePageVo;
import com.codedancer.campus.manager.service.vo.role.RoleVo;
import java.util.List;

public interface IRoleService {

    /**
     * 添加角色
     * @param roleAddOrUpdateBo
     */
    void add(RoleAddOrUpdateBo roleAddOrUpdateBo);

    /**
     * 分页查询角色
     *
     * @param rolePageSearchBo
     * @return
     */
    IPage<RolePageVo> page(RolePageSearchBo rolePageSearchBo);

    /**
     * 修改角色
     * @param roleAddOrUpdateBo
     */
    void update(RoleAddOrUpdateBo roleAddOrUpdateBo);

    /**
     * 获取全部角色
     * @return
     */
    List<RoleVo> all();

    /**
     * 分配权限
     *
     * @param menuUuids
     * @param roleUuid
     */
    void assignPermissions(List<String> menuUuids, String roleUuid);

    /**
     * 获取角色菜单权限
     * @param roleUuid
     * @return
     */
    List<String> listMenuByRoleUuid(String roleUuid);
}
